package br.com.classificadosonline.persistencia;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import br.com.classificadosonline.nucleo.Tipo;

public class TipoDAO {

	private static final TipoDAO instance = null;

	public static TipoDAO getInstance()
	{
		if (instance == null)
		{
			instance = new TipoDAO();
		}
		return instance;
	}

	public static TipoDAO obterInstancia() {
		return (TipoDAO) Conexao.select("SELECT * FROM TIPO");
	}
	
	public static void cadastrarTipo(String descricao) {
		Conexao.update("INSERT INTO TIPO VALUES ('" + descricao + "')");
	}
	
	public static void modificarTipo(int codigo, String descricao) {
		Conexao.update("UPDATE TIPO SET DESCRICAO='" + descricao + "' WHERE CODIGO=" + codigo);
	}	
	
	public static Tipo buscarTipo(int codigo) {
		return buscar("SELECT * FROM TIPO WHERE CODIGO=" + codigo).get(0);
	}
	
	public static Tipo buscarTipoPorDescricao(String descricao) {
		return buscar("SELECT * FROM TIPO WHERE DESCRICAO='" + descricao + "'").get(0);
	}
	
	public static List<Tipo> buscar(String query) {
		ResultSet rs = Conexao.select("SELECT * FROM LOGIN");//null;
		List<Tipo> lista = new ArrayList<Tipo>();
		Tipo tipo = null;	
		Statement stmt;
		try {
			Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=CLASSIFICADOS","sa","senha");
		
			stmt = con.createStatement();//Conexao.conexao().createStatement();							
			rs = stmt.executeQuery(query);
			while (rs.next()) {
				tipo = new Tipo(rs.getInt("CODIGO"), rs.getString("DESCRICAO"));
				lista.add(tipo);
			}
			stmt.close();
			Conexao.conexao().close();	
		} catch (SQLException e) {
		}
		return lista;
	}
	
	public static List<Tipo> listarTipo() {
		return buscar("SELECT * FROM TIPO");
	}
	
	public static void excluirTipo(int codigo) {
		Conexao.update("DELETE FROM TIPO WHERE CODIGO=" + codigo);
	}
}
